Qt tablewidget 获取表格一行内容并显示在下一行 |
您所在的位置:网站首页 › tablewidget 获取选中行内容 › Qt tablewidget 获取表格一行内容并显示在下一行 |
在构造函数使用前两句设置每次点击一个item能够选中一整行以及编辑item功能 pushButton槽里面获取当前点击的item行列数 然后通过循环使用text().toStdString()获取item的内容并显示到指定的item上 ui->tableWidget->setItem(now_row+1,now_column,e); //设置选择行为时每次选择一行 ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置任何时候都可以编辑 ui->tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged); void Mainwindow::on_pushButton_clicked(){ //获取当前点击的item行列数 int now_column = ui->tableWidget->currentColumn(); int now_row = ui->tableWidget->currentRow(); //如果不是点击在第一列则获取到第一列 if(now_column != 0) { now_column = 0; } //表格有5列 for(int i =0;itableWidget->item(now_row,now_column)->text().toStdString(); QString s1 = QString::fromStdString(qsa1); //传入qsting值 QTableWidgetItem *e =new QTableWidgetItem(s1); ui->tableWidget->setItem(now_row+1,now_column,e); now_column++; } }以上代码实现会出现问题 当表格里面的item是空的时候程序会中断 因为当item是空的时候, ui->tableWidget->item(now_row,now_column); 得到的是一个空指针所以不能用text()去获取文本! void Load_a_reference::on_pushButton_clicked() { qDebug()currentColumn(); int now_row = ui->tableWidget->currentRow(); if(now_column != 0) { now_column = 0; } for(int i =0;itableWidget->item(now_row, now_column) == NULL) { continue; } //s1是一个QString全局变量 s1 = ui->tableWidget->item(now_row, now_column)->text(); QTableWidgetItem *e =new QTableWidgetItem(s1); ui->tableWidget->setItem(now_row+1,now_column,e); now_column++; } }
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |